<?php
namespace app\index\controller;
use think\Controller;
use think\Db;

class Api extends Controller{
	public function getJsonData($action){
		
		$id=input('id');
		// echo $action;die;
		if($action == 'koubei') {//获取口碑排行榜
            $data = db('company')->select();
            // var_dump($data);die;
        }
		else if($action=='getcate'){
		 	$data = db('menu')->where('pid',0)->select();
		    	foreach ($data as $k => $v) {
		    		$data[$k]['place'] = 'http://172.16.101.128/tp5/public'.'/static/images/'.$data[$k]['place'];
		    	}
		    	return json($data);
		 }
		 else if ($action=='getcatechild') {
		 	$data = db('menu')->where('pid',$id)->select();
		 	return json($data);
		 }
	}

public function addUser(){//添加用户信息
		/**
		 * 前端：在微信授权的时候触发
		 * 方法的参数：
		 * 		头像地址（json数据中key为headimg）
		 *   	用户的openid（json数据中key为openid）
		 *    	昵称（json数据中key为nickname）
		 * 方法的作用（返回结果）：
		 * 		用户存在时返回用户的openid
		 *   	用户不存在时将用户的的头像地址、openid、用户昵称存入数据库并返回用户openid
		 */
		if(input('openid')){//判断是否传openid过来
		// max=(a>b)?a:b;
		$data = [//定义需要插入的数据
			'openid' => input('openid'),//openid用户唯一识标
			'nickname' => input('nickname'),//用户昵称
			'createtime' => date("Y-m-d H:i:s"),//创建时间
			'heading' =>input('heading'),//头像
			'sex' =>input('sex'),
			'place' =>input('place')
		];
		// $data = [//测试数据
		// 	'openid' => "MCAT04",//openid用户唯一识标
		// 	'nickname' => "MCAT",//用户昵称
		// 	'headimg' => "http://cms.ink/static/img/icon/20180723/9c570e5f2b229efc42922cbe58900d81.png",//用户头像
		// 	'createtime' => date("Y-m-d H:i:s")
		// ];
		 $d=Db('userinfo')->where('openid',$data['openid'])->column('openid');
		 if($d){//用户已存在
		 	return json(['msg' => 'exists','openid' => $data['openid']]);//返回res:用户已存在
		 }else{//用户不存在
		 	if(Db('userinfo') -> insert($data)){	//执行插入
								return json(['msg' => 'join','openid' => $data['openid']]);//发回res:join 结果 状态online 在线 和用户openid
							}
							else
								return json(array('res' => 'error' ));
		 }
		}
		

	}
		public function editUser(){//用户修改信息
		/*
		 * 在修改信息时的时候触发
		 * 参数：
		 * 		用户的电话（json数据中key为headimg）
		 * 	 	用户的openid（json数据中key为openid）
		 * 	  	用户输入的地址（json数据中key为address）
		 * 返回结果：
		 * 		修改成功返回ok，失败返回error
		 */
		// max=(a>b)?a:b;
		$data = [
			'tel' => input('tel'),//openid用户唯一识标
			'name' => input('name'),//姓名
			'place' => input('place'),//地址
			'sex' => input('sex'),//性别
		];
		if(Db('userinfo') -> where('openid',input('openid')) -> update($data)){//执行插入
			return json(array('res' => 'ok'));//成功返回OK
		}else{
			return json(array('res' => 'error'));//失败返回error
		}
	}
		public function getUserinfo(){
		if($data=Db('userinfo')->where('openid',input('openid'))->select()){
			return json($data);
		}

	}

	public function addComment(){//添加评论
		$data=[
			'mid' => input('mid'),//message的id
			'content' => input('content'),//评论内容
			'openid' => input('openid'),//评论人的openid
			'time' => date("Y-m-d H:i:s")//评论时间

		];
		if(Db('comment') -> insert($data)){	//执行插入
			return json(['msg'=>'添加评论成功','code' => 200,'data' => null]);
		}else{
			return json(['msg'=>'添加评论失败','code' => 400,'data' => null]);
		}
		
	}

		 public function addpublish($imgPathAll){
		 $imgTemp = "";//图片路径
		$soundTemp = "";//声音路径
		 
			
					 //多个图片上传
				           $imgs = request()->file('imgs');
				            if ($imgs) {
				            	foreach ($imgs as $key => $file) {
				            		$info = $file->validate(['size'=>156780,'ext'=>'jpg,png,gif'])->move(ROOT_PATH.'public/static/img');
				            		if ($info) {
										$imgPathAll .=$info->getSaveName()."|";
					                }
					            }
								$imgTemp = str_replace("\\","/",substr($imgPathAll,0,strlen($imgPathAll)-1)); //去掉字符串的最后一个字符替换\为/
							 }
          			 //语音上传
				           $sound = request()->file('sound');
				            if ($sound) {
				            	$info2 = $sound->move(ROOT_PATH.'public/static/img');
				            	if ($info2) {
									$soundTemp = $info2->getSaveName();
				                }
				            }
							$soundTemp = str_replace("\\","/",$soundTemp); //字符替换\为/

							$data = [//插入的数据
								'title' => input('title'),//标题
								'openid' => input('openid'),//发布人
								'reqment' => input('reqment'),//要求
								'info' => input('info'),//文字信息
								'imgs' => $imgTemp,//图片路径
								'sound' => $soundTemp,//声音路径
								'company' => input('company'),//公司名称
								'tel' => input('tel'),//联系电话
								'address' => input('address'),//地址
								'createtime' => date("Y-m-d H:i:s"),//发布时间
								'cateid' => input('cateid')//分类id
							];
							// var_dump($data);die;
							if(Db('publish') -> insert($data)){	//执行插入
								return json(array('res' => 'ok' ));
							}
							else{
								return json(array('res' => 'error' ));
							}
	
		 }
		    public function getpublish(){

			if(input('cid')!=null||input('cid')!=""){//通过子分类查询
			$data = db('publish')->where('cateid',input('cid'))->where('review',2)->select();
		}else if(input('pcid')!=null||input('pcid')!=""){//通过大分类查询
			$idArray = db('menu')->where('pid',input('pcid'))->column('id');//存子类id
			// dump($idArray);
			array_push($idArray, input('pcid'));//加入父级id
			  $data = db('publish')->alias('m')->field('cate.name category,m.*,u.name,u.heading')->where(['review'=>2])->where('cateid' ,'in', $idArray)->join('userinfo u',"u.openid = m.openid")->join('menu cate','m.cateid = cate.id')->select();//查询子类和父类的所有
			// dump($data);k[puj[ojh]]
			// exit;
		}
		 else//查询所有的
		{
			// $data = db('message')->where('review',1)->select();//查询审核
			$data = db('publish')->alias('m')->field('m.*,u.name,u.heading')->where('review',2)->join('userinfo u',"u.openid = m.openid")->select();
		}
				$imgArray = array();//图片数组
				foreach ($data as $k => $v) {
					$data[$k]['plcount'] = db('comment')->where('mid',$data[$k]['id'])->count();//评论量
			    	
			    		// $data[$k]['imgs'] = $domainName.'/static/img/message/'.$data[$k]['imgs'];
			    		$imgArray = explode("|",$data[$k]['imgs']);//拆分imgs字段
			    		foreach ($imgArray as $key => $value) {
			    			$imgArray[$key] = $this -> splicePath($imgArray[$key],'publish');//补全图片路径
			    			# code...
			    		}
			    		$data[$k]['imgs'] = $imgArray;
			    	}
			    
				return json($data);

		 }
		 public function splicePath($img,$imgtype){//补全路径['数据库中未全地址，图片所属信息类']
			$domainName= $_SERVER['SERVER_ADDR'];//主机IP地址
			$img = 'http://'.$domainName.'/tp5/public/static/img/'.$imgtype.'/'.$img;//拼接图片完整路径
	
		return $img;//返回全路径

}
		public function getDetail($id){//获取详情
		$data = db('publish')->alias('m')->field('m.*,u.name,u.heading')->where('publish.id',$id)->join('userinfo u',"u.openid = m.openid")->select();
		$imgArray = array();//图片数组
				foreach ($data as $k => $v) {
			    		// $data[$k]['imgs'] = $domainName.'/static/img/message/'.$data[$k]['imgs'];
			    		$imgArray = explode("|",$data[$k]['imgs']);
			    		foreach ($imgArray as $key => $value) {
			    			$imgArray[$key] = $this -> splicePath($imgArray[$key],'publish');
			    			# code...
			    		}
			    		$data[$k]['imgs'] = $imgArray;
			    	}
		$comment = db('comment')->alias('c')->field('c.*,u.name,u.heading')->where('c.mid',$id)->join('userinfo u',"u.openid = c.openid")->select();
		// 
		$data['comment']=$comment;
		Db::query('update publish set viewnum = viewnum+1 where id = '.$id);

		// dump($data);die;
		return json($data);
	}
	public function addcomplain(){
		$data=[
		'openid'=>input('openid'),
		'content'=>input('content'),
		'time'=>date("Y-m-d H:i:s"),
		'mid' =>input('mid'),
	];
	if(Db('complain') -> insert($data)){	//执行插入
			return json(['msg'=>'添加投诉成功','code' => 200,'data' => input('content')]);
		}else
		return json(['msg'=>'添加投诉失败','code' => 400,'data' =>input('content')]);
	}
	public function getcomplain($id){
		$comment = db('complain')->alias('c')->field('c.*,u.name,u.heading')->where('c.mid',$id)->join('userinfo u',"u.openid = c.openid")->select();
		$data['complain']=$comment;
		return json($data);
	}
}